﻿/**
 *
 * @file FITKPhyscisPropertyUniform.h
 * @brief 均质板类定义
 * @author liuzhiyuan(liuzhiyuan@diso.cn)
 * @date 2024-10-18
 *
 */
#ifndef FITKPHYSCISPROPERTYUNIFORM_H
#define FITKPHYSCISPROPERTYUNIFORM_H


#include "FITKAcousticsAbsShellPhysicsProp.h"
#include "FITKAcousticsPhysicsAPI.h"
namespace Acoustics
{
    /**
    * @brief 均质板数据结构定义
    * @author liuzhiyuan(liuzhiyuan@diso.cn)
    * @date 2024-10-15
    */
    class FITKAcousticsPhysicsAPI FITKPhyscisPropertyUniform : public FITKAcousticsAbsShellPhysicsProp
    {
        FITKCLASS(Acoustics, FITKPhyscisPropertyUniform);
        Q_OBJECT
    public:
        explicit FITKPhyscisPropertyUniform();
        virtual ~FITKPhyscisPropertyUniform();

        /**
         * @brief 获取类型
         * @return AcousticsPhyscisPropType 类型
         * @author liuzhiyuan(liuzhiyuan@diso.cn)
         * @date 2024-10-15
         */
        AcousticsPhyscisPropType getPhysicsPropType() override;
        /**
         * @brief 获取厚度
         * @return thickness 截面积
         * @author liuzhiyuan(liuzhiyuan@diso.cn)
         * @date 2024-10-15
         */
        double getThickness() const;
        /**
         * @brief 设置厚度
         * @param[i] double 厚度
         * @author liuzhiyuan(liuzhiyuan@diso.cn)
         * @date 2024-10-15
         */
        void setThickness(double thickness);
        /**
         * @brief    获取板物理属性的总体厚度抽象接口
         * @return   double
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2024-11-12
         */
        virtual double getShellThickness() override;
        /**
         * @brief    更新默认颜色
         * @return   void
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2025-01-20
         */
        virtual void updateDefaultColor() override;

    private:
        /**
         * @brief  厚度
         * @author liuzhiyuan(liuzhiyuan@diso.cn)
         * @date   2024-10-15
         */
        double _thickness { 0.0 };
    };

}

#endif // FITKPHYSCISPROPERTYUNIFORM_H
